今日目標:
class Node
:節點的組成class SLL
:單向鏈結串列的組成push_front(data)
:從頭新增節點class Node
單向鏈結串列的節點包含一個鏈結(指向下一個節點)、資料內容。
在新增節點時,我們保證會給定資料內容,因此在設計建構子時,要傳入一個參數 data
。
因為不確定下一個節點為何,所以我們直接設定鏈結 next
存的值是 None
。
class Node:
def __init__(self, data):
self.data = data # 節點的資料
self.next = None # 節點的鏈結
class SLL
鏈結串列是由很多節點組成的,但是最重要的是第一個節點,我們需要一個變數 head
儲存。
最開始鏈結串列沒有任何節點,所以 head
初始化為 None
。
為了方便,我們也可以多宣告一個紀錄鏈結串列長度的變數 length
。
class SLL:
def __init__(self):
self.head = None # 鏈結串列的第一個節點
self.length = 0 # 鏈結串列的長度
'''
methods such as push_front(data), ...
'''
push_front(data)
這個類別方法的用途是「新增節點在鏈結串列最前端」。
這就牽扯到一個問題:head
會不會被改變?
一定會的!因為我們把節點新增在鏈結串列最前端。
這個類別方法的做法大致為:
head
head
更正為新的節點class SLL:
'''
pass
'''
def push_front(self, data):
newNode = Node(data)
newNode.next = self.head
self.head = newNode
下一篇,我們再來繼續為鏈結串列新增類別方法!